package integer;

/**
 * JDK5之后,java推出了一个新特性:自动拆装箱
 * 该特性允许我们在源代码中直接将基本类型和对应的包装类互相赋值,编译器会在编译期间自动添加类型转换操作
 * 这个过程称为自动拆装箱
 */
public class IntegerDemo3 {
    public static void main(String[] args) {
        int a=1;
         /*
            将基本类型直接赋值给引用类型,这实际上触发了编译器的自动装箱特性
            自动装箱:
            当编译器发现我们将基本类型值赋值给引用类型时,编译器在编译时会补充将基本类型转换为
            对应包装类的操作
            Integer i = a;
            会被编译器改为:
            Integer i = Integer.valueOf(a);
         */
        Integer i=a;
         /*
            将基本类型直接赋值给引用类型,这实际上触发了编译器的自动装箱特性
            自动装箱:
            当编译器发现我们将基本类型值赋值给引用类型时,编译器在编译时会补充将基本类型转换为
            对应包装类的操作
            Integer i = a;
            会被编译器改为:
            Integer i = Integer.valueOf(a);
         */
        a=i;
    }
}
